Monte Carlo 仿真与 TSMC PDK model section

简介

解析 TSMC PDK 中 ttg_localmc / ssg_localmc / globalmc_localmc / localmconly 等 MC model section 的含义,以及 Cadence ADE 中 Process / Mismatch / All 的对应关系。

核心模型:一个公式分清三类变化

Pi=Pnom+ΔPglobal+ΔPlocal,i
项 含义
ΔPglobal 这颗 die / 这轮 MC 中所有同类器件共同的工艺偏移(global / process variation)
ΔPlocal,i 第 i 个器件独立的局部偏差 = mismatch
TT/SS/FF/FS/SF corner 人为定义的代表性工艺点,不是随机抽样

Spectre 的 ADE Monte Carlo Variation 即按此划分:

ADE Variation Global Local
Process ✓ ×
Mismatch × ✓
All ✓ ✓

Model section 速查表

Section 本质 Global Local 典型用途
top_tt 固定 TT corner TT 无 nominal / PVT
top_ss 固定 SS corner SS 无 slow corner
top_sf_tr_tc / top_ss_tr_tc 固定 SF / SS corner SF / SS 无 skew corner
top_localmconly TT 附近 local MC 不随机 ✓ 纯 mismatch
top_ttg_localmc TT 固定 + local MC TT ✓ TT 下 mismatch
top_ssg_localmc SS 固定 + local MC SS ✓ SS 下 mismatch
top_fsg_tr_tc_localmc FS 固定 + local MC FS ✓ skew corner mismatch
top_sfg_tr_tc_localmc SF 固定 + local MC SF ✓ skew corner mismatch
top_globalmc_localmc Global MC + Local MC 随机 随机 全统计 / yield
最容易混的概念

ttg_localmc 里的 g ≠ "再做一次 global Monte Carlo"。g 指 global process 固定在某个 corner(TT/SS/FS/SF),再叠加 local mismatch。global 本身也随机的只有 globalmc_localmc。

各 section 逐个解读

localmconly ≈ TT + local MC

Pi=PTT+ΔPlocal,i

工艺中心保持 TT,只模拟器件间 mismatch。回答:"nominal 工艺下,本应相同的两个器件会差多少?"

适合:差分对 input offset、current mirror mismatch、bandgap ΔVBE / resistor-ratio、comparator offset、SRAM read/write margin、DAC unit-element、sense amplifier mismatch。

⚠️ 注意:MC 的 Mismatch 只描述随机 local variation,不含 layout gradient、WPE、LOD、不对称走线等系统性失配。

ttg_localmc = TT 固定 corner + local MC

Pi=PTT+ΔPlocal,i

物理上与 localmconly 很接近(同为 TT 中心 + local MC),区别在命名逻辑:显式声明 global 锁死在 TT,同一轮 MC 内 global 不会在 SS↔TT↔FF 之间漂移。

回答:"典型工艺 TT 下,我的 offset σ 是多少?"(如 comparator:TT nominal 时 VOS=0,TT+local MC 后 σ(VOS)=3.2 mV)

ssg_localmc = SS 固定 corner + local MC

Pi=PSS+ΔPlocal,i

与 ttg_localmc 唯一区别:global center 换成 SS。同一轮 MC 里整个电路处于 SS 工艺背景,再叠加各器件随机 mismatch。

回答:"到了 SS 工艺以后再叠加 mismatch,会不会出问题?"——与 ttg 是两个不同的问题。mismatch 本身的统计特性变化未必大,但电路对 mismatch 的灵敏度会变(如 SS 下 gm↓ 导致 ∂VOS/∂VTH 改变),可能出现 TT+MC pass 而 SS+MC fail(如 σVOS 从 2.5mV 升到 4.1mV)。

fsg / sfg_tr_tc_localmc = FS / SF skew corner + local MC

Pi=PFS/SF+ΔPlocal,i

FS/SF 是 N/P 两类 MOS 一快一慢的 skew corner(本 PDK 中第一位对应 NFET 还是 PFET,以 model guide 为准)。N/P strength ratio(βn/βp)改变对以下电路影响显著:

FS 与 SF 必须成对看:例如 FS 最差 read、SF 最差 write(或相反),不能只凭 TT 的 MC 判断。

globalmc_localmc = 完整模型

Pi=Pnom+ΔPglobal+ΔPlocal,i

每次 MC 先随机抽这颗"虚拟 die"的 global process(偏 slow / 偏 fast / 接近 typical),再叠加各器件 local 随机,对应 ADE 的 All。

Global Local
ttg_localmc 锁死 TT MC
globalmc_localmc MC 随机 MC 随机

回答:"从生产统计角度,global process + mismatch 同时存在时,spec 分布 / yield 是多少?"

tr_tc 是什么

top_sf_tr_tc、top_fsg_tr_tc_localmc 中的 tr / tc 不是 MOS corner,大概率是 passive corner 的独立指定(typical resistor / typical capacitor)。结构应理解为:

FS global MOS corner + 指定 R corner(tr) + 指定 C corner(tc) + local mismatch MC

而不是四种 Monte Carlo 同时叠加。

Warning

tr/tc 是 PDK-specific 命名,不同 node / model release 可能不同。不要仅凭缩写写进 signoff 文档,必须查对应版本的 Model User Guide / Monte Carlo Guide / Model Corner Definition。

ADE Variation 与 model section 的组合(易踩坑)

foundry model section 自己决定哪些 variation 真正启用:

Corner ≠ Monte Carlo(signoff 思路)

目标
Corner 验证设计在预定义极端条件下还工作不工作
MC 得到随机制造分布下的统计特性与 yield

推荐流程(不要只跑 globalmc_localmc 替代 corner):

PVT corners
   ↓ 找出 worst corners
worst corner + local MC(ssg / fsg / sfg_localmc)
   ↓
global + local MC(统计 / yield)

一句话记忆版

localmconly        = TT + 器件随机失配
ttg_localmc        = TT 固定 corner + 器件随机失配
ssg_localmc        = SS 固定 corner + 器件随机失配
fsg_tr_tc_localmc  = FS 固定 corner + 指定 R/C corner + 器件随机失配
sfg_tr_tc_localmc  = SF 固定 corner + 指定 R/C corner + 器件随机失配
globalmc_localmc   = global process 随机 + 器件 local 随机

参考

相关笔记